﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Sigos
{
    public partial class frmPesquisaPedidos : BaseBuscas
    {
        public frmPesquisaPedidos()
        {
            InitializeComponent();
        }

        public void BuscarPedidos(string pParametro)
        {
            using (SigosEntities Entidades = new SigosEntities())
            {
                lstResultados.Items.Clear();
                try
                {
                    // string Retorno = "";
                    //string ValorB = "";
                    pProgress.Value = 5;
                    var SPedido = (from pe in Entidades.PedidoCabeca
                                   where pe.Clientes.NomeFantasia.Contains(pParametro) || pe.Clientes.RazaoSocial.Contains(pParametro) || pe.Clientes.CPF_CNPJ.Contains(pParametro) || pe.Clientes.Telefone.Contains(pParametro)
                                   select pe).ToList();

                    if (gpOrcamento.Checked)
                    {
                        Selecao = SPedido.Where(p => p.Status == "O"); // Produção
                    }
                    else if (gpFechado.Checked)
                    {
                        Selecao = SPedido.Where(p => p.Status == "F"); // Entregue
                    }
                    else if (gpTodos.Checked)
                    {
                        Selecao = SPedido.Where(p => p.Status.Contains("")); //Orçamento
                    }
                   
                    pProgress.Value = 50;

                    foreach (PedidoCabeca Ped in Selecao)
                    {
                        string RetornoNFE;

                        ListViewItem item = new ListViewItem();
                        if (Ped.Status == "O")
                        {
                            item.BackColor = Color.White;
                        }
                        if (Ped.Status == "F")
                        {
                            item.BackColor = Color.YellowGreen;
                        }
                        if (Ped.ChaveNFe == null)
                        {
                            RetornoNFE = "NÃO";
                        }
                        else
                        {
                            RetornoNFE = "SIM";
                        }
                        item.Text = Ped.CodigoPedido.ToString();
                        item.SubItems.Add(Ped.DataHoraPedido.ToShortDateString());
                        item.SubItems.Add(Ped.Clientes.NomeFantasia + " " + Ped.Clientes.RazaoSocial);
                        item.SubItems.Add(Ped.Clientes.CPF_CNPJ);
                        item.SubItems.Add(RetornoNFE);
                        lstResultados.Items.Add(item);
                    }
                    pProgress.Value = 100;
                }
                catch
                {

                }

            }
        }

        private void txtParametro_TextChanged(object sender, EventArgs e)
        {
            try
            {
                if (txtParametro.TextLength > 3)
                {
                    BuscarPedidos(txtParametro.Text);
                }
            }
            catch
            {

            }
        }

        public IEnumerable<PedidoCabeca> Selecao { get; set; }

        private void gpOrcamento_CheckedChanged(object sender, EventArgs e)
        {
            try
            {
                if (txtParametro.TextLength > 3)
                {
                    BuscarPedidos(txtParametro.Text);
                }
            }
            catch
            {

            }
        }

        private void gpFechado_CheckedChanged(object sender, EventArgs e)
        {
            try
            {
                if (txtParametro.TextLength > 3)
                {
                    BuscarPedidos(txtParametro.Text);
                }
            }
            catch
            {

            }
        }

        private void gpTodos_CheckedChanged(object sender, EventArgs e)
        {
            try
            {
                if (txtParametro.TextLength > 3)
                {
                    BuscarPedidos(txtParametro.Text);
                }
            }
            catch
            {

            }
        }

        private void lstResultados_DoubleClick(object sender, EventArgs e)
        {
            try
            {
                Utilidades.NumeroPedido = lstResultados.SelectedItems[0].Text;
                Close();
            }
            catch
            {

            }
        }
    }
}
